﻿using System;
using Irony;
using Irony.Parsing;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AppServidor
{
    class AnalizadorLista
    {
        public String cad = "";
        public StringBuilder thtml;
        public List<Lista> bibliotecaListas;
        public List<string> cads;
        public int[] numsord;
        public string[] cadsord;
        public StringBuilder graph;
        int nivel = 0;

        public bool isValid(string codigo, Grammar grammar)
        {
            LanguageData lenguaje = new LanguageData(grammar);
            Parser p = new Parser(lenguaje);
            ParseTree arbol = p.Parse(codigo);

            if (bibliotecaListas == null)
            {
                bibliotecaListas = new List<Lista>();
            }
            //cads = new List<string>();
           evaluar(arbol.Root.ChildNodes);

            return arbol.Root != null;
        }

        public String evaluar(ParseTreeNodeList nodo)
        {

            if (nodo != null && nodo.Count > 0)
            {
                ParseTreeNodeList nodoaux = nodo;
                foreach (ParseTreeNode hijo2 in nodoaux)
                {
                    //   print(hijo2);
                    String a = hijo2.Term.ToString();
                    if (a.CompareTo("Keyword") == 0)
                    {
                        String tem = hijo2.FindTokenAndGetText();
                        
                        return hijo2.FindTokenAndGetText();
                    }
                    else if (a.CompareTo("cade") == 0)
                    {
                        cads.Add(hijo2.FindTokenAndGetText());
                    }
                    evaluar(hijo2.ChildNodes);
                    return hijo2.FindTokenAndGetText();
                }

            }
        }

    }
}
